lexer grammar CLexer;

options {
  language = Java;
}

@lexer::header {
   package ejercicio2;
}
fragment OP_SUM : '+';
fragment OP_REST : '-';
fragment OP_DIV: '/';
fragment OP_MULTI: '*';
fragment LETRA: ('a'..'z'|'A'..'Z');
fragment DIGITO : '0'..'9';


BLANCO : (' '|'\t'|'\r'?'\n') {$channel=HIDDEN;} ;
WHILE: 'while' ;
IF: 'if';
PAR_OP : '(' ;
PAR_CL : ')' ;
LLAV_OP: '{';
LLAV_CL: '}';
fragment OP_MENOR: '<';
fragment OP_MAYOR: '>';
OP_IGUAL: '=';


SEPARADOR : ';' ;
OP_REL: (OP_MENOR (OP_IGUAL)?|OP_MAYOR (OP_IGUAL)?);
OP_ADD: (OP_SUM | OP_REST); 
OP_MUL: (OP_DIV | OP_MULTI);
NUMERO: DIGITO+; 
IDENT: LETRA+;
